package com.ruoyi.fitsculpt.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;

/**
 * 身体数据记录对象 easyfit_body_stats
 *
 * @author metaee
 * @date 2025-02-27
 */
@ApiModel("身体数据记录对象")
public class EasyfitBodyStats extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 记录ID
     */
    @ApiModelProperty("记录ID")
    @Excel(name = "记录ID")
    private Long statId;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID")
    @Excel(name = "用户ID")
    private Long userId;

    /**
     * 体重(kg)
     */
    @ApiModelProperty("体重(kg)")
    @Excel(name = "体重(kg)")
    private BigDecimal weight;

    /**
     * 体脂率(%)
     */
    @ApiModelProperty("体脂率(%)")
    @Excel(name = "体脂率(%)")
    private BigDecimal bodyFatPercentage;

    /**
     * 肌肉量(kg)
     */
    @ApiModelProperty("肌肉量(kg)")
    @Excel(name = "肌肉量(kg)")
    private BigDecimal muscleMass;

    /**
     * BMI指数
     */
    @ApiModelProperty("BMI指数")
    @Excel(name = "BMI指数")
    private BigDecimal bmi;

    /**
     * 腰围(cm)
     */
    @ApiModelProperty("腰围(cm)")
    @Excel(name = "腰围(cm)")
    private BigDecimal waistline;

    /**
     * 胸围(cm)
     */
    @ApiModelProperty("胸围(cm)")
    @Excel(name = "胸围(cm)")
    private BigDecimal chest;

    /**
     * 臀围(cm)
     */
    @ApiModelProperty("臀围(cm)")
    @Excel(name = "臀围(cm)")
    private BigDecimal hip;

    /**
     * 记录日期
     */
    @ApiModelProperty("记录日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date recordDate;

    /** 关联的用户信息 */
    @TableField(exist = false)
    private EasyfitUsers user;

    public Long getStatId() {
        return statId;
    }

    public void setStatId(Long statId) {
        this.statId = statId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public BigDecimal getWeight() {
        return weight;
    }

    public void setWeight(BigDecimal weight) {
        this.weight = weight;
    }

    public BigDecimal getBodyFatPercentage() {
        return bodyFatPercentage;
    }

    public void setBodyFatPercentage(BigDecimal bodyFatPercentage) {
        this.bodyFatPercentage = bodyFatPercentage;
    }

    public BigDecimal getMuscleMass() {
        return muscleMass;
    }

    public void setMuscleMass(BigDecimal muscleMass) {
        this.muscleMass = muscleMass;
    }

    public BigDecimal getBmi() {
        return bmi;
    }

    public void setBmi(BigDecimal bmi) {
        this.bmi = bmi;
    }

    public BigDecimal getWaistline() {
        return waistline;
    }

    public void setWaistline(BigDecimal waistline) {
        this.waistline = waistline;
    }

    public BigDecimal getChest() {
        return chest;
    }

    public void setChest(BigDecimal chest) {
        this.chest = chest;
    }

    public BigDecimal getHip() {
        return hip;
    }

    public void setHip(BigDecimal hip) {
        this.hip = hip;
    }

    public Date getRecordDate() {
        return recordDate;
    }

    public void setRecordDate(Date recordDate) {
        this.recordDate = recordDate;
    }

    public EasyfitUsers getUser() {
        return user;
    }

    public void setUser(EasyfitUsers user) {
        this.user = user;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("statId", getStatId())
                .append("userId", getUserId())
                .append("weight", getWeight())
                .append("bodyFatPercentage", getBodyFatPercentage())
                .append("muscleMass", getMuscleMass())
                .append("bmi", getBmi())
                .append("waistline", getWaistline())
                .append("chest", getChest())
                .append("hip", getHip())
                .append("recordDate", getRecordDate())
                .append("createTime", getCreateTime())
                .append("user", getUser())
                .toString();
    }
}
